<?php
	require_once $_SERVER['DOCUMENT_ROOT'] . '/spa/xajax/xajax_core/xajax.inc.php';
	
	$xajax = new xajax();
	
	function cargarProductos() {
		$conexion = OCILogon('spa', '1234') or die ('¡No se pudo conectar a la base de datos!') or die (OCIError());
	
		$query = "SELECT PK_ID_PRODUCTO, NOMBRE
				  FROM PRODUCTO
				  ORDER BY PK_ID_PRODUCTO DESC";
				  
	 	$sentencia = OCIParse($conexion, $query);
		
		OCIExecute($sentencia);
		
		OCILogOff($conexion);
		
		$impresion = '<select name="idProducto" id="idProducto"><option value="Seleccione">Seleccione</option>';
		$rows = OCIFetchstatement($sentencia, $resultado);
		
		if ($rows > 0)
			for ($i = 0; $i < $rows; $i++)
				$impresion .= '<option value="' . $resultado['NOMBRE'][$i] . '">' . $resultado['NOMBRE'][$i] . '</option>';
				
		$impresion .= '</select>';
		
		return $impresion;
	}
	
	function insertar_combo($combo) {
		$nombre = $combo['nombre'];
		$tasaDescuento = $combo['tasaDescuento'];
		$productos = $combo['productos'];
		
		if ($productos == '') {
			$respuesta = new xajaxResponse();
			
			$respuesta -> assign("mensaje", "innerHTML", '<font color="#990000" size="+1">¡El combo debe tener al menos un producto asociado!</font>');
			
			return $respuesta;			
		}
		
		$conexion = OCILogon ('spa','1234') or die( "¡No se pudo conectar a la base de Datos!") or die (OCIError());
		
		/**
		 * Insertando en la tabla de combos
		 */
		$query = "INSERT INTO COMBO
				  VALUES (PK_ID_COMBO.NEXTVAL, INITCAP('$nombre'), $tasaDescuento)";
					  
		$sentencia = OCIParse($conexion, $query);
			
		$c = OCIExecute($sentencia);
		
		OCICommit($conexion);
		
		/**
		 * Recuperando el último identificador de la tabla de combos
		 */
		$query = "SELECT MAX(PK_ID_COMBO) ID_COMBO
				  FROM COMBO";
					  
		$sentencia = OCIParse($conexion, $query);
	
		OCIExecute($sentencia);
			
		$rows = OCIFetchstatement($sentencia, $resultado);
			
		if ($rows > 0)
			$idCombo = $resultado['ID_COMBO'][0];
		
	   /**
		* Separando el contenido del área de texto por el punto y coma final de cada entrada
		*/
		$explode = explode(";", $productos);
		
		for ($i = 0; $i < count($explode)-1; $i++) {
		   /**
			* Separando el contenido de cada entrada por el guion
			*/
			$explodeProducto = explode(" - ", $explode[$i]);
		   
		   /**
		    * Obteniendo la cadena completa antes y después del "-" en cada registro
			*/
			$nombreAux = $explodeProducto[0];
			$cantidadAux = $explodeProducto[1];
			
		   /**
		    * Tomando el nombre del producto y la cantidad
			*/
			if ($i == 0)
				$nombreProducto = substr($nombreAux, 3);
			
			else
				$nombreProducto = substr($nombreAux, 4);
				
			$cantidadProducto = substr($cantidadAux, 0, strpos($cantidadAux, "u")-1);
			
			$query = "SELECT PK_ID_PRODUCTO
			          FROM PRODUCTO
					  WHERE NOMBRE = '$nombreProducto'";
				   
			$sentencia = OCIParse($conexion, $query);
	
			OCIExecute($sentencia);
			
			$rows = OCIFetchstatement($sentencia, $resultado);
			
			if ($rows > 0)
				$idProducto = $resultado['PK_ID_PRODUCTO'][0];			
			
			/**
		    * Insertando en la tabla pro_com
			*/
			$query = "INSERT INTO PRO_COM
					  VALUES ($idProducto, $idCombo, $cantidadProducto)";
					  
			$sentencia = OCIParse($conexion, $query);
			
			$c = OCIExecute($sentencia);
		}		
	
		OCILogOff($conexion);
		
		$nombre = '<font color="#FFFFFF">' . $nombre . '</font>';
		$tasaDescuento = '<font color="#FFFFFF">' . $tasaDescuento . '</font>';
		
	   /**
		* Muestra el mensaje de éxito o error después de la inserción
		*/
		if ($c) {
			$mensaje = '<td align="center" colspan="2"><font size="+1" color="#FFFFFF">¡INSERCIÓN EXITOSA!</font></td>';
		}
		else {
			$mensaje = '<td align="center" colspan="2"><font size="+1" color="#990000">¡INSERCIÓN FALLIDA!</font></td>';	
		}
		
		$respuesta = new xajaxResponse();
		
		$respuesta -> assign("nombre", "innerHTML", $nombre);
		$respuesta -> assign("tasaDescuento", "innerHTML", $tasaDescuento);
		$respuesta -> assign("etiquetaProducto", "innerHTML", "");
		$respuesta -> assign("selectProducto", "innerHTML", "");
		$respuesta -> assign("etiquetaCantidad", "innerHTML", "");
		$respuesta -> assign("selectCantidad", "innerHTML", "");
		$respuesta -> assign("borrar", "innerHTML", "");
		$respuesta -> assign("registrar", "innerHTML", "");
		$respuesta -> assign("mensaje", "innerHTML", $mensaje);
		
		return $respuesta;
	}
	
	$xajax -> registerFunction("insertar_combo");
	
	function validarNombre($nombre) {
		$respuesta = new xajaxResponse();
		 
		if ($nombre == '') {
			$respuesta -> assign("errorCombo", "innerHTML", '<font color="#990000" size="-1">* Campo obligatorio</font>');
			$respuesta -> assign("errorC", "innerHTML", '<input name="errorCombo" type="hidden" value="true" />');
		}
		 
		else {
			$conexion = OCILogon('spa', '1234') or die("¡No se pudo conectar a la base de datos!") or die(OCIError());
			
			$query = "SELECT PK_ID_COMBO
			          FROM COMBO
					  WHERE NOMBRE = INITCAP('$nombre')";
					  
			$sentencia = OCIParse($conexion, $query);
			
			OCIExecute($sentencia);
			
			OCILogOff($conexion);
			
			$rows = OCIFetchstatement($sentencia, $resultado);
			
			if ($rows > 0) {
				$respuesta -> assign("errorCombo", "innerHTML", '<font color="#990000" size="-1">* Nombre duplicado</font>');
				$respuesta -> assign("errorC", "innerHTML", '<input name="errorCombo" type="hidden" value="true" />');
			}
				
			else {
				$respuesta -> assign("errorCombo", "innerHTML", '');
				$respuesta -> assign("errorC", "innerHTML", '<input name="errorCombo" type="hidden" value="false" />');
			}
		}
		 
		return $respuesta;
	}
	 
	$xajax -> registerFunction("validarNombre");
	
	function validarTasa($tasa) {
		$respuesta = new xajaxResponse();
		
		if ($tasa == '') {
			$respuesta -> assign("errorTasa", "innerHTML", '<font color="#990000" size="-1">* Campo obligatorio</font>');
			$respuesta -> assign("errorT", "innerHTML", '<input name="errorTasa" type="hidden" value="true" />');
		}
		
		else if (!is_numeric($tasa)) {
			$respuesta -> assign("errorTasa", "innerHTML", '<font color="#990000" size="-1">* Tasa debe ser numérica</font>');
			$respuesta -> assign("errorT", "innerHTML", '<input name="errorTasa" type="hidden" value="true" />');
		}
			
		else if (($tasa < 0.01) || ($tasa > 99.99)) {
			$respuesta -> assign("errorTasa", "innerHTML", '<font color="#990000" size="-1">* Tasa entre 0.01 y 99.99</font>');
			$respuesta -> assign("errorT", "innerHTML", '<input name="errorTasa" type="hidden" value="true" />');
		}
		
		else {
			$respuesta -> assign("errorTasa", "innerHTML", '');
			$respuesta -> assign("errorT", "innerHTML", '<input name="errorTasa" type="hidden" value="false" />');
		}	

		return $respuesta;
	}
	
	$xajax -> registerFunction("validarTasa");
	
	function reiniciarCamposErrores() {
		$respuesta = new xajaxResponse();
		
		$respuesta -> assign("errorCombo", "innerHTML", '<font color="#990000">* Campo obligatorio</font>');
		$respuesta -> assign("errorC", "innerHTML", '<input name="errorCombo" type="hidden" value="true"');
		$respuesta -> assign("errorTasa", "innerHTML", '<font color="#990000">* Campo obligatorio</font>');
		$respuesta -> assign("errorT", "innerHTML", '<input name="errorTasa" type="hidden" value="true"');
		$respuesta -> assign("selectProducto", "innerHTML", cargarProductos());
		
		return $respuesta;
	}
	
	$xajax -> registerFunction("reiniciarCamposErrores");
	
	$xajax -> processRequest();	
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!--
Design by Free CSS Templates
http://www.freecsstemplates.org
Released for free under a Creative Commons Attribution 2.5 License

Name       : Beach Sunset
Description: A two-column, fixed-width design for 1024x768 screen resolutions.
Version    : 1.0
Released   : 20090416

-->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Insertar nuevo combo</title>
		<?php
			/**
     	 	 * Indicando al objeto xajax que se encargue de generar el código
     	 	 * javascript necesario para procesar las llamadas a ajax
     	 	 */
     		 $xajax -> printJavascript("xajax/");
		?>
        <script>
			function llenar_area_texto(producto, cantidad) {
				if ((producto != 'Seleccione') && (cantidad != 'Seleccione')) {
					document.combo.productos.value += "» " + producto + " - " + cantidad;
					
					if (cantidad == 1)
						document.combo.productos.value += " unidad;\n";
					else
						document.combo.productos.value += " unidades;\n";
					
					document.combo.idProducto.options[document.combo.idProducto.selectedIndex] = null;
				}
			}
			
			function insertarCombo() {
				errorCombo = document.combo.errorCombo.value;
				errorTasa = document.combo.errorTasa.value;
				
				if ((errorCombo == 'false') && (errorTasa == 'false'))
					xajax_insertar_combo(xajax.getFormValues('combo'));
					
				else
					alert("¡El combo presenta inconvenientes, revise e intente de nuevo!");
			}
		</script>
<meta name="keywords" content="" />
<meta name="description" content="" />
<link href="style.css" rel="stylesheet" type="text/css" media="screen" />
<style type="text/css">
<!--
.Estilo2 {font-size: 12px; color: #FF6600; }
.Estilo3 {font-size: 12px; color: #FF9900; }
.Estilo4 {color: #FF6600}
.Estilo5 {font-size: 24px}
.Estilo7 {color: #FFFFFF}
.Estilo8 {font-size: 12px; color: #FFFFFF; }
.Estilo9 {font-size: 60px}
.Estilo10 {color: #F0F0F0}
-->
</style>
</head>
<body>

<div id="wrapper">
	<div id="header">	
 <br />
		<div id="menu">				      
				<li  class="active"><a href="HOME.php" title="HOME">HOME</a></li>
				<li><a href="INSERTAR.php" title="INSERTA">INSERTAR</a></li>
				<li><a href="ELIMINAR.php" title="ELIMINAR">ELIMINAR</a></li>
				<li><a href="CONSULTAR.php" title="CONSULTAR">CONSULTAR</a></li>
				<li><a href="MODIFICAR.php" title="MODIFICAR">MODIFICAR</a></li>
                <li><a href="MOSTRAR.php" title="MOSTRAR">MOSTRAR</a></li>				
	  	</div>  <!-- end #menu -->	
  </div>    <!-- end #header -->
		<div id="logo">
			<h1><a href="#"><span class="">Take a Rest</span> ... </a></h1>
		    <div align="left"></div>
		</div>
		<!-- end #logo -->  
	
</div> <!-- end *header- wrapper -->


<div id="page">

	<div id="sidebar">
		<ul>
			<li>
				<h2>Acciones</h2>
				<p class="Estilo2">Pulse sobre una acción para ejecutarla</p>
			</li>
            <li>
            	<font color="#FFFFFF">&raquo; <a href="InsertarCombo.php" class="Estilo10">Agregar un nuevo combo</a></font>
            </li>
            <li>
            	<font color="#FFFFFF">&raquo; <a href="ModificarCombo.php" class="Estilo10">Modificar un combo existente</a></font>
            </li>
            <li>
            	<font color="#FFFFFF">&raquo; <a href="EliminarCombo.php" class="Estilo10">Eliminar un combo</a></font>
            </li>
            <li>
            	<font color="#FFFFFF">&raquo; <a href="MostrarCombo.php" class="Estilo10">Mostrar todos los combos</a></font>
            </li>
		</ul>
</div>

  <h1 align="center"><font color="#FFFFFF">Insertar combo</font></h1>
  <p>&nbsp;</p>
  <div align="center">
  <form id="combo" name="combo">
  <table width="536" border="0" cellpadding="5" cellspacing="5">
    <tr>    	
    	<td width="226" align="right"><font color="#FFFFFF" size="+1">Nombre</font></td>
    	<td width="275" align="left"><div id="nombre"><input name="nombre" type="text" id="nombre" size="40" maxlength="20" onblur="xajax_validarNombre(document.combo.nombre.value)" /></div></td>
  	</tr>
    <tr>
  		<td></td>
    	<td><div id="errorCombo"><font color="#990000" size="-1">* Campo obligatorio</font></div></td>
    	<td><div id="errorC"><input name="errorCombo" type="hidden" value="true" /></div></td>
  	</tr>
  	<tr>
    	<td align="right"><font color="#FFFFFF" size="+1">Tasa de descuento</font></td>
    	<td align="left"><div id="tasaDescuento"><input name="tasaDescuento" type="text" id="tasaDescuento" size="38" maxlength="5" onblur="xajax_validarTasa(document.combo.tasaDescuento.value)" />&nbsp;<font color="#FFFFFF" size="+1">%</font></div></td>
  	</tr>
    <tr>
  		<td></td>
    	<td><div id="errorTasa"><font color="#990000" size="-1">* Campo obligatorio</font></div></td>
    	<td><div id="errorT"><input name="errorTasa" type="hidden" value="true" /></div></td>
  	</tr>
    <tr>
    	<td width="226" align="right"><div id="etiquetaProducto"><font color="#FFFFFF" size="+1">Producto</font></div></td>
    	<td width="275" align="left"><div id="selectProducto"><?php echo cargarProductos() ?></div></td>
  	</tr>
  	<tr>
  		<td width="226" align="right"><div id="etiquetaCantidad"><font color="#FFFFFF" size="+1">Cantidad</font></div></td>
    	<td width="275" align="left"><div id="selectCantidad"><select name="cantidad" id="cantidad"><option value="Seleccione">Seleccione</option>
		<?php
			for ($i = 1; $i < 100; $i++)
				echo '<option value=' . $i . '>' . $i . '</option>';
		?>
    	</select>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input name="agregar" type="button" value="Agregar al combo" onclick="llenar_area_texto(document.combo.idProducto.options[document.combo.idProducto.selectedIndex].value, document.combo.cantidad.options[document.combo.cantidad.selectedIndex].value)" /></div></td>
  	</tr>
    <tr>
  		<td align="center" colspan="2">
	    	<fieldset>
        		<legend><font color="#FFFFFF" size="+1">Productos del combo</font></legend>
        		<textarea name="productos" rows="4" cols="52" readonly="readonly"></textarea>
        	</fieldset>
    	</td>    
  	</tr>
  	<tr>    	
  		<td align="right"><div id="borrar"><input name="borrar" type="reset" value="Borrar todo" onclick="xajax_reiniciarCamposErrores()" /></div></td>
  		<td align="left"><div id="registrar"><input name="registrar" type="button" value="Registrar" onclick="insertarCombo()" /></div></td>
    </tr>
    <tr>
    	<td align="center" colspan="2"><div id="mensaje"></div></td>
    </tr>
  </table>
  </form>
  </div>
</div>
<!-- end #page -->

<div id="footer">
	<p> Design by <a href="http://www.freecsstemplates.org/">Nubielis, Eduardo, Daniel </a></p>
</div>
<!-- end #footer -->
</div>
</body>
</html>
